[C] Arquivos e Stat
Publicado por Enzo de Brito Ferber (última atualização em 23/09/2010)
[ Hits: 8.114 ]
Homepage: http://www.maximasonorizacao.com.br
Programa simples mostrando como usar a função stat(), e como manipular aquivos de uma forma bem simples. Ponteiros também são usados.
Baixe:
$ tar -xzvf loadfile.tar.gz
$ cd loadfile
$ ./loadfile text
;)
[]'s
/* loadfile.c */ #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include <sys/types.h> #include <sys/stat.h> int main ( int argc, char *argv[] ) { char *fullfile, *p, *p2, c ; struct stat fileinfo; FILE *openfile; if ( argc < 2 ) { printf ( "[*] Usage: %s <file>\n", argv[0] ); exit ( EXIT_FAILURE ); } /* read-binary permission */ openfile = fopen ( argv[1], "rb" ); if ( !openfile ) { printf ( "[*] Can't open file %s\n", argv[1] ); exit ( EXIT_FAILURE ); } /* file info for file size */ if ( stat ( argv[1], &fileinfo ) == -1 ) { printf ( "[*] Can't stat() file %s\n", argv[1] ); exit ( EXIT_FAILURE ); } /* alloc memory for the pointer * * fileinfo.st_size = size of the file in bytes */ fullfile = ( char * ) malloc ( fileinfo.st_size * sizeof ( char )); if ( !fullfile ) { printf ( "[*] Can't malloc() %d bytes\n", fileinfo.st_size ); exit ( EXIT_FAILURE ); } /* To view all the resources of the stat structure: * * $ man stat */ printf ( "File info:\n" ); printf ( "UID : %d\n", fileinfo.st_uid ); printf ( "GID : %d\n", fileinfo.st_gid ); printf ( "Size: %d bytes\n", fileinfo.st_size ); printf ( "Mode: %8.8x\n", fileinfo.st_mode ); /* reference pointer */ p = fullfile; while ( 1 ) { if ( feof ( openfile )) break; fscanf ( openfile, "%c", &(*(p++)) ); } /* print file */ p2 = fullfile; while ( fullfile < p ) putchar ( *(fullfile++) ); /* put back in place what you use */ free ( p2 ); fclose ( openfile ); return 0; }
Copia uma linha selecionada para um arquivo secundário
Nenhum comentário foi encontrado.
Atualizar o macOS no Mac - Opencore Legacy Patcher
Crie alias para as tarefas que possuam longas linhas de comando - bash e zsh
Criando um gateway de internet com o Debian
Configuração básica do Conky para mostrar informações sobre a sua máquina no Desktop
Aprenda a criar músicas com Inteligência Artificial usando Suno AI
Instalando Zoom Client no Ubuntu 24.04 LTS
Instalando Zoom Client no Fedora 40
Instalando Navegador Firefox no Debian 12
Bloqueando propagandas no Youtube e outros sites com o uBlocker Origin
Configurando static ipv6 em placa de rede eth0[DUVIDA] (1)
Sistema da Coréia do Norte - Red Star OS (59)
Comando interno CD não funciona (16)
Dificuldade em ler binário (12)
Em que pasta/arquivo ficam as configurações das janelas em derivados d... (2)